/*
 * 百度在线网络技术（北京）有限公司拥有本软件版权2021并保留所有权利。
 * Copyright 2021, Baidu.com,Inc 2:Baidu Online Network Technology (Beijing) Co.,Ltd,
 * All rights reserved.
 */

package com.azdebugit.mianshi.test;

import java.util.Collections;
import java.util.Scanner;
 
public class Greedyalgorith {
	final int n=7;
	static int []count={5,0,2,1,1,3,5};
	static int []value={1,2,5,10,20,50,100};
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*
		 * 假设1元、2元、5元、10元、20元、50元、100元的纸币
		 * 分别有c0, c1, c2, c3, c4, c5, c6张。
		 * 现在要用这些钱来支付K元，至少要用多少张纸币？
		 * 用贪心算法的思想，每一步尽可能用面值大的纸币即可。
		 * 在程序中已经事先将Value按照从小到大的顺序排好
		 */

		Scanner sc=new Scanner(System.in);
		int money=sc.nextInt();
		int result=solve(money);
		if(result==-1)
			System.out.println("金额不足");
		else
			System.out.println(result);
	}

	private static int solve(int money) {
		// TODO Auto-generated method stub
		int num=0;
		for(int i=6;i>=0;i--)
		{
			int c=money/value[i];
			if(c<=count[i])
				c=money/value[i];
			else
				c=count[i];
			money=money-c*value[i];
			num=num+c;
		}
		if(money>0)  return -1;
		else return num;

	}
}